#ifndef __ST3_H__
#define __ST3_H__

#include <systemc.h>
#include "tlm.h"
#include "tlm_utils/simple_initiator_socket.h"
#include "tlm_utils/simple_target_socket.h"
#include "datastruct.hh"
#include <queue> 


using namespace std;
using namespace sc_core;


struct ST3 : public sc_module { // define a systemC module

    tlm_utils::simple_target_socket<ST3> st12st3_tsocket;

    
    SC_CTOR(ST3) {// constructor function, to be explained later

        st12st3_tsocket.register_b_transport(this, &ST3::st12st3_b_transport);
    }

    void st12st3_b_transport(tlm::tlm_generic_payload &trans, sc_core::sc_time &delay);
};

#endif //__ST3_H__